package com.neusoft.hifly.rpc.sms.domain;

import java.io.Serializable;
import java.util.Map;

/**
 * 阿里大于短信发送对象
 */
public class SendDetailDTO implements Serializable {

	private static final long serialVersionUID = 7898766040324252342L;

	// 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
	private String accessKeyId;

	private String accessKeySecret;
	// 必填:短信签名
	private String signName;

	// 必填:待发送手机号,如果需要查询国际短信,号码前需要带上对应国家的区号
	private String phoneNumber;
	// 必填:短信模板-可在短信控制台中找到
	private String templateCode;
	// 可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为{\"name\":\"Tom\", \"code\":\"123\"}
	private Map<String, String> templateParam;

	/**
	 * 构造方法
	 */
	public SendDetailDTO() {
	}

	/**
	 * 构造方法
	 *
	 * @param accessKeyId
	 *            KeyId
	 * @param accessKeySecret
	 *            KeySecret
	 * @param signName
	 *            短信签名
	 */
	public SendDetailDTO(final String accessKeyId, final String accessKeySecret, final String signName) {
		super();
		this.accessKeyId = accessKeyId;
		this.accessKeySecret = accessKeySecret;
		this.signName = signName;
	}

	/**
	 * 构造方法
	 *
	 * @param accessKeyId
	 *            KeyId
	 * @param accessKeySecret
	 *            KeySecret
	 * @param phoneNumber
	 *            待发送手机号
	 * @param signName
	 *            短信签名
	 */
	public SendDetailDTO(final String accessKeyId, final String accessKeySecret, final String phoneNumber,
			final String signName) {
		super();
		this.accessKeyId = accessKeyId;
		this.accessKeySecret = accessKeySecret;
		this.phoneNumber = phoneNumber;
		this.signName = signName;
	}

	/**
	 * 构造方法
	 *
	 * @param accessKeyId
	 *            KeyId
	 * @param accessKeySecret
	 *            KeySecret
	 * @param phoneNumber
	 *            待发送手机号
	 * @param signName
	 *            短信签名
	 * @param templateCode
	 *            短信模板
	 * @param templateParam
	 *            模板中的变量替换JSON串
	 */
	public SendDetailDTO(final String accessKeyId, final String accessKeySecret, final String phoneNumber,
			final String signName, final String templateCode, final Map<String, String> templateParam) {
		super();
		this.accessKeyId = accessKeyId;
		this.accessKeySecret = accessKeySecret;
		this.phoneNumber = phoneNumber;
		this.signName = signName;
		this.templateCode = templateCode;
		this.templateParam = templateParam;
	}

	public String getAccessKeyId() {
		return accessKeyId;
	}

	public void setAccessKeyId(final String accessKeyId) {
		this.accessKeyId = accessKeyId;
	}

	public String getAccessKeySecret() {
		return accessKeySecret;
	}

	public void setAccessKeySecret(final String accessKeySecret) {
		this.accessKeySecret = accessKeySecret;
	}

	public String getPhoneNumber() {
		return phoneNumber;
	}

	public void setPhoneNumber(final String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	public String getSignName() {
		return signName;
	}

	public void setSignName(final String signName) {
		this.signName = signName;
	}

	public String getTemplateCode() {
		return templateCode;
	}

	public void setTemplateCode(final String templateCode) {
		this.templateCode = templateCode;
	}

	public Map<String, String> getTemplateParam() {
		return templateParam;
	}

	public void setTemplateParam(final Map<String, String> templateParam) {
		this.templateParam = templateParam;
	}

}
